草庐IT

Java Raw Type 和泛型交互

全部标签

java - 泛型方法的不同返回类型取决于调用位置

我有以下带有泛型的方法,它执行接收到的列表中每个项目的getter:publicstaticListgetValues(Listlist,StringfieldName){Listret=newArrayList();StringmethodName="get"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1,fieldName.length());try{if(list!=null&&!list.isEmpty()){for(Tt:list){ret.add((S)t.getClass().getMethod(

java - 在非交互式脚本中安装 jre

我想在非交互式脚本中安装jre1.7。有没有一种方法可以等效于以下内容?update-alternatives--configjavaThereare3programswhichprovide'java'.SelectionCommand-----------------------------------------------1/usr/lib/jvm/jre-1.5.0-gcj/bin/java*+2/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java3/usr/lib/jvm/jre1.7/bin/java 最

java - 类型转换一个泛型类。 (种姓)和 Class.cast()

我搜索了我的用例并找到了一些有趣的答案,但它们并不像我需要的那样合适。这样做的适当方法是什么:@SuppressWarnings("unchecked")publicTnewInstance(Stringname)throwsClassCastException,InstantiationException,IllegalAccessException,ClassNotFoundException{return(T)loadClass(name).newInstance();}或者有点不同:publicTnewInstance(Stringname,Classc)throwsClass

java - 访问泛型类型的静态字段

我能否要求实现接口(interface)的类具有某个静态字段或方法,并通过泛型类型参数访问/调用该字段或方法?我有一个接口(interface),Arithmetical,它指定了几个函数,例如Tplus(To)和Ttimes(To)。我还有一个Vector>类,它适用于具有N类型组件的vector(可变维度)。然而,我在尝试实现dotproduct时遇到了一个问题。.我想实现方法Ndot(Vectoro)。为此,我计划从N的零开始,并遍历两个Vectors'Lists,将每对元素的乘积加到我的总数中。有没有办法在Arithmetical中指定所有实现类必须有一个静态(最好是最终)字段

java - 如果实例没有分配泛型类型,则每个循环问题中的泛型

这个问题在这里已经有了答案:Whatisarawtypeandwhyshouldn'tweuseit?(16个答案)关闭6年前。有人可以向我解释为什么明确需要为ForEachLoop实例分配泛型类型吗?为什么编译器会提示:类型不匹配:无法从元素类型Object转换为String?JDK1.5.0_09importjava.util.ArrayList;importjava.util.Collection;publicclassForEachLoop{publicstaticvoidmain(String[]args){//NonfunctionalversionForEachLoopf

Java 泛型 : capture cannot be applied to Object

我的代码有一个Map的(Message)Handlers。我正在尝试使处理程序通用化(如接口(interface)处理程序所见)。如果没有泛型,处理程序都需要从Object转换为相应的类,最好避免这种情况(但一切正常)。对于每个消息类(下面的Foo),我都有一个处理程序类。如何将任何类型的类映射到任何类型的处理程序,并“仅”使用一个对象获取/调用?(不能限制handleMessage(Object)的参数)请参阅下面的MWE。importjava.util.*;publicclassLogic{Map,Handler>handlers=newHashMap,Handler>();pub

Java泛型成员初始化

假设我有一个参数化的Java类,它包含一个私有(private)T_member。我想编写一个default构造函数(无参数),以某种方式将我的T_member初始化为某个已知的类型T特定值(例如-1表示整数,Float.MAX_VALUE表示float...)。那可能吗?我尝试了newT(),但编译器不喜欢那样。还是我什么都不做,保证会为我调用默认构造函数? 最佳答案 因为typeerasure,在运行时“没有T”。绕过它的方法是传递一个Class的实例进入构造函数,像这样:publicclassMyClass{T_member;

java - 将泛型 Class<T> 作为参数传递

我需要传递一个Class作为参数,但我只有泛型类型T。如何推断泛型Class并将其传递给fromJson()?publicclassDeserializerimplementsJsonDeserializer>{publicTsomeMethod(){...Ttag=gson.fromJson(obj,???);//takesaclasse.g.something.class...}}谢谢 最佳答案 感谢Java类型删除,你不能。http://docs.oracle.com/javase/tutorial/java/generics

java - 具有泛型类型具体实现的 LambdaMetaFactory

我正在尝试使用Java的LambdaMetaFactory动态实现通用lambda,Handler:publicclassRoutingContext{//...}@FunctionalInterfacepublicinterfaceHandler{publicvoidhandle(Xarg);}publicclassHomeHandlerextendsHandler{@Overridepublicvoidhandle(RoutingContextctx){//...}}这是我对LambdaMetaFactory的尝试:try{ClasshomeHandlerClass=HomeHan

java - 具有泛型的 Vavr 给出了不兼容的类型

谁能解释一下为什么这段代码:interfaceLol{defaultTry>lol(){returnTry.of(List::empty);}}classLolImplimplementsLol{@OverridepublicTry>lol(){returnTry.of(()->List.of(1,2,3))//.onFailure(Object::hashCode);}}如果我取消注释onFailure语句会编译失败吗?不知道这里发生了什么。如何改进? 最佳答案 您可以调用Try.of()返回显式泛型以满足编译器检查。像这样的东西